﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	[DataContract]
	public enum СостоянияВерсийЭД
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"eee092f7-d449-4b70-9f40-e1f82f1e6d0d\", \"Представление\":\"ИзвещениеНаПодписи\"}")]
		ИзвещениеНаПодписи = 0,//Извещение на подписи
		[EnumMember(Value = "{\"Ссылка\":\"68f91e5a-3cf4-4cd8-a1fa-1076fb361520\", \"Представление\":\"НаПодписи\"}")]
		НаПодписи = 1,//На подписи
		[EnumMember(Value = "{\"Ссылка\":\"23f631a5-2bd8-4a29-aa33-da31a2a34fd7\", \"Представление\":\"НаУтверждении\"}")]
		НаУтверждении = 2,//На утверждении
		[EnumMember(Value = "{\"Ссылка\":\"bf02e8fa-3370-4fa8-872e-bdea66941b77\", \"Представление\":\"НеПолучен\"}")]
		НеПолучен = 3,//Не получен
		[EnumMember(Value = "{\"Ссылка\":\"4d038624-67a3-4a25-9c0a-3c6257dcc1ce\", \"Представление\":\"НеСформирован\"}")]
		НеСформирован = 4,//Не сформирован
		[EnumMember(Value = "{\"Ссылка\":\"ee0f3707-c3c0-4208-ac99-decc9c05e5c6\", \"Представление\":\"ОжидаетсяИзвещение\"}")]
		ОжидаетсяИзвещение = 5,//Ожидается извещение
		[EnumMember(Value = "{\"Ссылка\":\"6c803153-5653-4261-9a2e-268b39c84e48\", \"Представление\":\"ОжидаетсяИзвещениеОПолучении\"}")]
		ОжидаетсяИзвещениеОПолучении = 6,//Ожидается извещение о получении
		[EnumMember(Value = "{\"Ссылка\":\"90439737-467e-4f64-a74e-a2d153a8be1d\", \"Представление\":\"ОжидаетсяКорректировка\"}")]
		ОжидаетсяКорректировка = 7,//Ожидается корректировка
		[EnumMember(Value = "{\"Ссылка\":\"38f0e68e-3794-43eb-9af0-e9bacbd41f1b\", \"Представление\":\"ОжидаетсяОтправка\"}")]
		ОжидаетсяОтправка = 8,//Ожидается отправка
		[EnumMember(Value = "{\"Ссылка\":\"bddc99ef-2b6d-401f-875f-c7b78d3d3f3a\", \"Представление\":\"ОжидаетсяОтправкаИзвещения\"}")]
		ОжидаетсяОтправкаИзвещения = 9,//Ожидается отправка извещения
		[EnumMember(Value = "{\"Ссылка\":\"880db455-f254-49c5-ac13-4bdbdd6bb3ea\", \"Представление\":\"ОжидаетсяПодтверждение\"}")]
		ОжидаетсяПодтверждение = 10,//Ожидается подтверждение
		[EnumMember(Value = "{\"Ссылка\":\"0ad23277-4725-4df8-b288-720c63f15d71\", \"Представление\":\"ОжидаетсяПодтверждениеОператора\"}")]
		ОжидаетсяПодтверждениеОператора = 11,//Ожидается подтверждение оператора
		[EnumMember(Value = "{\"Ссылка\":\"71fe3ccd-0231-4799-b25b-c8d90ead6096\", \"Представление\":\"Отклонен\"}")]
		Отклонен = 12,
		[EnumMember(Value = "{\"Ссылка\":\"cc9b91b8-61de-4030-a1e5-d2899275910d\", \"Представление\":\"ОбменЗавершен\"}")]
		ОбменЗавершен = 13,//Обмен завершен
		[EnumMember(Value = "{\"Ссылка\":\"fd39e0d6-d163-452e-9828-73325094f4dd\", \"Представление\":\"ОшибкаПередачи\"}")]
		ОшибкаПередачи = 14,//Ошибка передачи
		[EnumMember(Value = "{\"Ссылка\":\"b97293f9-6e12-4bb6-ae46-344e6a51eb75\", \"Представление\":\"ТребуетсяУточнитьДокумент\"}")]
		ТребуетсяУточнитьДокумент = 15,//Требуется уточнить документ
	}
	public static partial class СостоянияВерсийЭД_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid ИзвещениеНаПодписи = new Guid("f8e1409f-1e2f-0d6d-4b70-d449eee092f7");//Извещение на подписи
		public static readonly Guid НаПодписи = new Guid("7610faa1-36fb-2015-4cd8-3cf468f91e5a");//На подписи
		public static readonly Guid НаУтверждении = new Guid("31da33aa-a3a2-d74f-4a29-2bd823f631a5");//На утверждении
		public static readonly Guid НеПолучен = new Guid("eabd2e87-9466-771b-4fa8-3370bf02e8fa");//Не получен
		public static readonly Guid НеСформирован = new Guid("623c0a9c-dc57-cec1-4a25-67a34d038624");//Не сформирован
		public static readonly Guid ОжидаетсяИзвещение = new Guid("ccde99ac-059c-c6e5-4208-c3c0ee0f3707");//Ожидается извещение
		public static readonly Guid ОжидаетсяИзвещениеОПолучении = new Guid("8b262e9a-c839-484e-4261-56536c803153");//Ожидается извещение о получении
		public static readonly Guid ОжидаетсяКорректировка = new Guid("d1a24ea7-a853-1dbe-4f64-467e90439737");//Ожидается корректировка
		public static readonly Guid ОжидаетсяОтправка = new Guid("bae9f09a-d4cb-1b1f-43eb-379438f0e68e");//Ожидается отправка
		public static readonly Guid ОжидаетсяОтправкаИзвещения = new Guid("b7c75f87-3d8d-3a3f-401f-2b6dbddc99ef");//Ожидается отправка извещения
		public static readonly Guid ОжидаетсяПодтверждение = new Guid("db4b13ac-6bdd-eab3-49c5-f254880db455");//Ожидается подтверждение
		public static readonly Guid ОжидаетсяПодтверждениеОператора = new Guid("0c7288b2-f163-715d-4df8-47250ad23277");//Ожидается подтверждение оператора
		public static readonly Guid Отклонен = new Guid("d9c85bb2-ad0e-9660-4799-023171fe3ccd");
		public static readonly Guid ОбменЗавершен = new Guid("89d2e5a1-7592-0d91-4030-61decc9b91b8");//Обмен завершен
		public static readonly Guid ОшибкаПередачи = new Guid("32732898-9450-ddf4-452e-d163fd39e0d6");//Ошибка передачи
		public static readonly Guid ТребуетсяУточнитьДокумент = new Guid("4e3446ae-516a-75eb-4bb6-6e12b97293f9");//Требуется уточнить документ
		public static СостоянияВерсийЭД Получить(this СостоянияВерсийЭД Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static СостоянияВерсийЭД Получить(this СостоянияВерсийЭД Значение, Guid Ссылка)
		{
			if(Ссылка == ИзвещениеНаПодписи)
			{
				return СостоянияВерсийЭД.ИзвещениеНаПодписи;
			}
			else if(Ссылка == НаПодписи)
			{
				return СостоянияВерсийЭД.НаПодписи;
			}
			else if(Ссылка == НаУтверждении)
			{
				return СостоянияВерсийЭД.НаУтверждении;
			}
			else if(Ссылка == НеПолучен)
			{
				return СостоянияВерсийЭД.НеПолучен;
			}
			else if(Ссылка == НеСформирован)
			{
				return СостоянияВерсийЭД.НеСформирован;
			}
			else if(Ссылка == ОжидаетсяИзвещение)
			{
				return СостоянияВерсийЭД.ОжидаетсяИзвещение;
			}
			else if(Ссылка == ОжидаетсяИзвещениеОПолучении)
			{
				return СостоянияВерсийЭД.ОжидаетсяИзвещениеОПолучении;
			}
			else if(Ссылка == ОжидаетсяКорректировка)
			{
				return СостоянияВерсийЭД.ОжидаетсяКорректировка;
			}
			else if(Ссылка == ОжидаетсяОтправка)
			{
				return СостоянияВерсийЭД.ОжидаетсяОтправка;
			}
			else if(Ссылка == ОжидаетсяОтправкаИзвещения)
			{
				return СостоянияВерсийЭД.ОжидаетсяОтправкаИзвещения;
			}
			else if(Ссылка == ОжидаетсяПодтверждение)
			{
				return СостоянияВерсийЭД.ОжидаетсяПодтверждение;
			}
			else if(Ссылка == ОжидаетсяПодтверждениеОператора)
			{
				return СостоянияВерсийЭД.ОжидаетсяПодтверждениеОператора;
			}
			else if(Ссылка == Отклонен)
			{
				return СостоянияВерсийЭД.Отклонен;
			}
			else if(Ссылка == ОбменЗавершен)
			{
				return СостоянияВерсийЭД.ОбменЗавершен;
			}
			else if(Ссылка == ОшибкаПередачи)
			{
				return СостоянияВерсийЭД.ОшибкаПередачи;
			}
			else if(Ссылка == ТребуетсяУточнитьДокумент)
			{
				return СостоянияВерсийЭД.ТребуетсяУточнитьДокумент;
			}
			return СостоянияВерсийЭД.ПустаяСсылка;
		}
		public static byte[] Ключ(this СостоянияВерсийЭД Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this СостоянияВерсийЭД Значение)
		{
			switch (Значение)
			{
				case СостоянияВерсийЭД.ИзвещениеНаПодписи: return ИзвещениеНаПодписи;
				case СостоянияВерсийЭД.НаПодписи: return НаПодписи;
				case СостоянияВерсийЭД.НаУтверждении: return НаУтверждении;
				case СостоянияВерсийЭД.НеПолучен: return НеПолучен;
				case СостоянияВерсийЭД.НеСформирован: return НеСформирован;
				case СостоянияВерсийЭД.ОжидаетсяИзвещение: return ОжидаетсяИзвещение;
				case СостоянияВерсийЭД.ОжидаетсяИзвещениеОПолучении: return ОжидаетсяИзвещениеОПолучении;
				case СостоянияВерсийЭД.ОжидаетсяКорректировка: return ОжидаетсяКорректировка;
				case СостоянияВерсийЭД.ОжидаетсяОтправка: return ОжидаетсяОтправка;
				case СостоянияВерсийЭД.ОжидаетсяОтправкаИзвещения: return ОжидаетсяОтправкаИзвещения;
				case СостоянияВерсийЭД.ОжидаетсяПодтверждение: return ОжидаетсяПодтверждение;
				case СостоянияВерсийЭД.ОжидаетсяПодтверждениеОператора: return ОжидаетсяПодтверждениеОператора;
				case СостоянияВерсийЭД.Отклонен: return Отклонен;
				case СостоянияВерсийЭД.ОбменЗавершен: return ОбменЗавершен;
				case СостоянияВерсийЭД.ОшибкаПередачи: return ОшибкаПередачи;
				case СостоянияВерсийЭД.ТребуетсяУточнитьДокумент: return ТребуетсяУточнитьДокумент;
			}
			return Guid.Empty;
		}
	}
}